System and method for optimizing user notifications for small computer devices

ABSTRACT

A system and method for notifying users in a manner that is appropriate for the event and the environment for the user. The method of the present invention relates to determining the desired properties of an event and assigning varying notification characteristics to that event. Profiles are created of the various events, wherein each profile relates to a different mode or situational environment, such as a meeting environment, an office or normal environment, a louder outside-type environment, etc. The invention further relates to placing the small computer device in a particular mode, either automatically or manually. Once in a particular mode the device provides notifications according to that mode.

TECHNICAL FIELD

The present invention relates to small, portable computing devices, andparticularly to computing devices that provide user notificationsrelating to particular events. More particularly still, the presentinvention relates to algorithms implemented in determining notificationcharacteristics.

BACKGROUND OF THE INVENTION

Small, handheld computing devices have been steadily growing inpopularity in recent years. The devices are known by different names,such as palmtops, pocket computers, personal digital assistants,personal organizers, H/PCs, or the like. Additionally, many portabletelephone systems, such as cellular phones, incorporate sufficientcomputing capabilities to fall within the category of the small,handheld computing devices. These devices, hereinafter “small computerdevices,” provide much of the same functionality as their largercounterparts. In particular, the small computer devices provide usersthe ability to perform word processing, task management, spreadsheetprocessing, address book functions and Internet browsing, as well asmany other functions. Of particular importance to small computer deviceusers is the ability to be notified of various events, such asappointment reminders, reception of email, and in the case of portablephones, to be notified of incoming telephone calls and text messages,etc.

Typically notifications may be presented to a user in many differentways. For example, the notifications may be any number or types ofaudible signals, such as telephone rings, sound wave files or othersounds. Additionally, many small computing devices provide other meansof notification, such as by displaying a notification on the displayarea of the computing device, turning on or flashing a light emittingdiode (LED) light, or vibrating. Typically, each event is associatedwith a particular type of notification and different events oftentrigger or initiate different types of notifications. For example,receiving email may cause one sound while appointment reminders maytrigger a different sound.

One particular drawback associated with notifications in small computingdevices relates to the appropriateness of the type of notification usedas compared with the constantly changing environment for the user. Thatis, given the small size of the small computer devices, users typicallycarry them into numerous different situations. A particular type ofnotification may be appropriate for one situation, yet not for another.For example, an appointment reminder may be associated with a chime-typenotification that generates an audible signal at a predetermined time.The chime may be an appropriate type of notification when the user isalone in an office or at home, but may not be appropriate when the useris in a meeting with other people who may also hear the chime.

One solution to this problem relates to having a mute button on thesmall computer device so that during situations where a chimenotification may not be appropriate, the user can effectively turnaudible signals off. Such a mute button typically works in combinationwith the speaker at a hardware level. A mute button, however, is not anoptimal solution since a user may still want some notifications to beaudible. For example, a user may desire that all notifications be silentwhile in a meeting except for critical events, such as receiving a highpriority e-mail message. As another example, a user may want allappointment reminders to be silent but the same user may want emailnotifications to be audible when waiting for an important email ortelephone call from a particular person. The mute button does not allowfor the distinguishing between different notification events to providedifferent types of notifications to the user since it essentially turnsthe speaker off.

Additionally, the mute button only relates to audible signals and doesnot control vibrations or visual-type signals that may be inappropriatein certain circumstances. Therefore, if the user wants to change theappointment reminders from an audible signal to a vibrating signal, themute button is ineffective. In such a case the user would have to modifyeach appointment in the calendar, setting the notification type tovibrate. Not only is this task cumbersome, but it must also be performedeach time the environment changes.

Another drawback associated with using a mute button to controlnotification types is that the user must manually press the mute buttonwhen entering a quiet environment, i.e., an environment wherein the userdoes not want to be audibly notified of events. Placing the onus on theuser to manually press the mute button increases the probability thatthe device will not be placed in a non-audible mode because users tendto forget such things until an audible signal interrupts the user. Thus,a mute button is an unsatisfactory solution to handling notifications.

It is with respect to these considerations and others that the presentinvention has been made.

SUMMARY OF THE INVENTION

The present invention relates to a system and method for notifying usersin a manner that is appropriate for the event and the environment forthe user. The method of the present invention relates to determining thedesired properties of an event and assigning varying notificationcharacteristics to that event. Profiles are created of the variousevents, wherein each profile relates to a different mode or situationalenvironment, such as a meeting environment, an office or normalenvironment, a louder outside-type environment, etc. The inventionfurther relates to placing the small computer device in a particularmode, either automatically or manually. Once in a particular mode thedevice provides notifications according to that mode.

In accordance with certain aspects, the present invention relates to amethod of storing at least one profile of notification events in thememory of a small computer device, wherein the notification events areassociated with at least one notification type, and notifying a user ofan event according to the stored profile. The method may store more thanone profile and each profile is associated with a unique notificationmode. Additionally, a selection method is provided to select onenotification mode and once selected the mode is applied to the smallcomputer device and the device remains in the selected mode untilanother mode is selected. A calendar-type application program maygenerate the selection signal. The user is notified of events accordingto the selected notification mode.

The invention may be implemented as a computer process, a computingsystem or as an article of manufacture such as a computer programproduct. The computer program product may be a computer storage mediumreadable by a computer system and encoding a computer program ofinstructions for executing a computer process. The computer programproduct may also be a propagated signal on a carrier readable by acomputing system and encoding a computer program of instructions forexecuting a computer process.

A more complete appreciation of the present invention and itsimprovements can be obtained by reference to the accompanying drawings,which are briefly summarized below, to the following detail descriptionof presently preferred embodiments of the invention, and to the appendedclaims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a small computer device displaying a graphical userinterface screen shot incorporating a sound mode icon related to thepresent invention.

FIG. 2 is block diagram of a computer used in an embodiment of thepresent invention, such as the computer shown in FIG. 1.

FIG. 3 is a block diagram illustrating a software environment in anembodiment of the present invention.

FIG. 4 is a flow diagram illustrating operational flow characteristicsof customizing a notification profile in accordance with the presentinvention.

FIGS. 5-7 are exemplary displays incorporating aspects of the presentinvention for creating a profile.

FIG. 8 is a flow diagram showing the operational characteristics ofmanually assigning and applying a notification mode for the smallcomputer device shown in FIG. 1.

FIG. 9 is a flow diagram showing the operational characteristics ofautomatically assigning and applying a notification mode for the smallcomputer device shown in FIG. 1.

DETAILED DESCRIPTION OF THE INVENTION

An embodiment of the invention provides control of user notificationsfor different environments through the use of customized notificationprofiles. Each profile has information related to each type ofnotification event (such as a meeting reminder, a button press amongothers) and a corresponding notification type (such as an audible chime,a visual display, among others) for each notification event. Thus, eachprofile may be configured to provide different types of notificationsfor a plurality of different types of notification-type events. Usingthe profiles, the small computer device may be set to a predeterminedmode, wherein the mode relates to a predetermined notification profileso that each notification is presented to the user in the appropriatemanner. For example, while in a “meeting” mode, the small computerdevice uses the “meeting” profile to provide notifications to the userin an appropriate manner. Another embodiment of the inventionautomatically sets the small computer device into customizednotification mode in response to events stored in an associated calendarapplication.

The logical operations of the various embodiments of the presentinvention are implemented (1) as a sequence of computer implementedsteps running on a computing system and/or (2) as interconnected machinemodules within the computing system. The implementation is a matter ofchoice dependent on the performance requirements of the computing systemimplementing the invention. Accordingly, the logical operations makingup the embodiments of the present invention described herein arereferred to alternatively as operations, steps or modules.

A computing device 100 incorporating aspects of the present invention isshown in FIG. 1. In an embodiment of the invention, the computer 100 isa handheld computer having both input elements and output elements.Input elements may include touch screen display area 102 and inputbuttons 104 and allow the user to enter information into the computer100. The small computing device also incorporates a side input element106 allowing further user input. The side input 106 element may be arotary switch, a button, or any other type of manual input element. Inalternative embodiments, the small computing device 100 may incorporatemore or less input elements. For example, the display 102 may not be atouch screen in some embodiments. In yet another alternative embodiment,the computing device is a portable phone system, such as a cellularphone having a display 102 and input buttons 104 and 106.

The small computing device 100 further incorporates output-typeelements, such as display 102 which displays information to the user,including a graphical user interface, such as display 112, text, and/orcontrols. Other output elements include speaker 108 and LED light 110.Additionally, device 100 may incorporate a vibration module (not shown)which causes the device 100 to vibrate wherein the vibration notifiesthe user of a predetermined event. Thus, the vibration module may bedeemed an output element since vibrations provide the indication of theevent or other computer-related occurrence to the user. In yet anotherembodiment, the computer device may incorporate headphone jack (notshown) for providing another means of providing output signals.

Display 112 is an exemplary display screen that may be shown on displayscreen 102. Additionally, the exemplary display 112 illustrates a modemenu 114 which indicates to the user the current notification mode forthe system and which modes are available to the user. As discussed inmore detail below, the user may select a notification mode from menu114, to switch to other notification modes.

Although described herein in combination with a small computer device100, in alternative embodiments the invention is used in combinationwith any number of computer systems, such as in desktop environments,laptop or notebook computer systems, multiprocessor systems,micro-processor based or programmable consumer electronics, network PCs,mini computers, main frame computers and the like. The invention mayalso be practiced in distributed computing environments where tasks areperformed by remote processing devices that are linked through acommunications network in a distributed computing environment, programsmay be located in both local and remote memory storage devices. Inessence, any computer system having a plurality of output elements toprovide notifications to a user and a plurality of notification eventtypes may incorporate the present invention.

The computer 100 (shown in FIG. 1) incorporates a system 200 ofresources for implementing an embodiment of the invention, as shown inFIG. 2. The system 200 incorporates a computer 202 having at least onecentral processing unit (CPU) 204, a memory system 206, an input device208, and an output device 210. These elements are coupled by at leastone system bus 212.

The CPU 204 is of familiar design and includes an Arithmetic Logic Unit(ALU) 214 for performing computations, a collection of registers 216 fortemporary storage of data and instructions, and a control unit 218 forcontrolling operation of the system 200. The CPU 204 may be amicroprocessor having any of a variety of architectures including, butnot limited to those architectures currently produced by Intel, Cyrix,AMD, IBM and Motorola.

The system memory 206 comprises a main memory 220, in the form of mediasuch as random access memory (RAM) and read only memory (ROM), and mayincorporate or be adapted to connect to secondary storage 222 in theform of long term storage mediums such as hard disks, floppy disks,tape, compact disks (CDs), flash memory, etc. and other devices thatstore data using electrical, magnetic, optical or other recording media.The main memory 220 may also comprise video display memory fordisplaying images through the output device 210, such as a displayscreen. The memory can comprise a variety of alternative componentshaving a variety of storage capacities such as magnetic cassettes memorycards, video digital disks, Bernoulli cartridges, random accessmemories, read only memories and the like may also be used in theexemplary operating environment. Memory devices within the memory systemand their associated computer readable media provide non-volatilestorage of computer readable instructions, data structures, programs andother data for the computer system.

The system bus 212 may be any of several types of bus structures such asa memory bus, a peripheral bus or a local bus using any of a variety ofbus architectures.

The input and output devices are also familiar and are briefly discussedabove with respect to FIG. 1. Although not shown, and in addition tothose described above, the input device can further comprise amicrophone, a small keyboard, a mouse, a wireless communication system,a touch pad etc. Similarly, the output device may further compriseoutput elements such as a printer, a wireless communication system, etc.Some devices, such as a network interface or a modem can be used asinput and/or output devices. The input and output devices are connectedto the computer 202 through system buses 212.

The computer system 200 further comprises an operating system andusually one or more application programs. The operating system comprisesa set of programs that control the operation of the system 200, controlthe allocation of resources, provide a graphical user interface to theuser, facilitate access to local or remote information, and may alsoinclude certain utility programs such as a notification module. Anapplication program is software that runs on top of the operating systemsoftware and uses computer resources made available through theoperating system to perform application specific tasks desired by theuser. In general, applications are responsible for generatingnotifications in accordance with the present invention, but theinvention may be integrated into the operating system, as part of anotification control object, for example. Exemplary operating systems inwhich the notification system may be integrated with include MicrosoftCorporation's Windows for Pocket PC operating system for handheldpersonal computers.

Computing device 100 typically includes at least some form of computerreadable media. Computer readable media can be any available media thatcan be accessed by 100. By way of example, and not limitation, computerreadable media may comprise computer storage media and communicationmedia. Computer storage media includes volatile and nonvolatile,removable and non-removable media implemented in any method ortechnology for storage of information such as computer readableinstructions, data structures, program modules or other data. Computerstorage media includes, but is not limited to, RAM, ROM, EEPROM, flashmemory or other memory technology, CD-ROM, digital versatile disks (DVD)or other optical storage, magnetic cassettes, magnetic tape, magneticdisk storage or other magnetic storage devices, or any other mediumwhich can be used to store the desired information and which can beaccessed by 100. Communication media typically embodies computerreadable instructions, data structures, program modules or other data ina modulated data signal such as a carrier wave or other transportmechanism and includes any information delivery media. The term“modulated data signal” means a signal that has one or more of itscharacteristics set or changed in such a manner as to encode informationin the signal. By way of example, and not limitation, communicationmedia includes wired media such as a wired network or direct-wiredconnection, and wireless media such as acoustic, RF, infrared and otherwireless media. Combinations of any of the above should also be includedwithin the scope of computer readable media.

An exemplary software environment 300 that incorporates aspects of thepresent invention is shown in FIG. 3. Application program 302 isexecuted to create or edit a notification profile. The applicationprogram 302 communicates with operating system 304 through anapplication program interface 306. In alternative embodiments, theapplication program 302 communicates directly with the operating system304. Although the embodiment shown in FIG. 3 provides applicationprogram 302 as the program for customizing notification profiles, in analternative embodiment, the notification profile customization utilityis integrated with operating system 304.

The application program 302 communicates with a user through theoperating system, the input/output control module 308 and theinput/output devices 208 and 210. The application program 302 receivesinput signals to customize various notification modes. Each mode has anassociated profile and is stored by the application program 302 in thememory system 206 through the operating system 304 through a memorycontrol module 310. Additionally, the application program 302 providesthe user the ability to set the notification mode for the device 100.Once the user chooses a particular notification mode, the applicationprogram informs the operating system 304 of the notification mode.Later, once a notification event occurs, the operating system 304 usesthe chosen notification mode to initiate user notifications.

Notification profiles are stored in the memory system 206 and typicallycomprise a lookup table of values. In an embodiment of the invention,the memory 206 stores at least three different profiles: a normalprofile, an outside profile and a meeting profile. The normal profilehas intermediate volume levels for notifications and does not employvibration type notification since vibrations tend to consume significantamounts of power. The outside profile has louder volume levels since itcan be harder to hear a notification outside. Further, the outsideprofile employs vibration to further aid the user in recognizingnotifications. The meeting profile has volume levels set to silent sothat others are not interrupted. Additionally, the meeting profile mayalso employ vibrations as a notification type that informs the user ofan event but does not interfere with the meeting. Table 1, shown below,highlights some of these and other features associated with theseexemplary notification profiles.

TABLE 1 Profile Volume Sound Files Enabled Notification Type NormalIntermediate Default Sound Files Sound, LED and Messages Outside LoudDefault Sound Files Sound and Vibration Meeting Disabled No Sounds UsedLED, Messages and Vibration

As may be appreciated, many other profiles may be created and stored.For example the system may incorporate an “off” profile whicheffectively turns all notifications off. Additionally, although notshown, profiles may be created that provide for certain notificationtypes, such as sound, for only specific notification events, such ascritical reminders. As an example, the profile may be set to silent modefor all notification events except for a phone call or email from aparticular person.

FIG. 4 is a flow chart of the operational characteristics related tocustomizing a notification mode, i.e., creating a notification profilein accordance with the present invention. The customization process 400may be performed for each notification mode. Different methods may beemployed in order to initiate flow 400. That is, the flow 400 may bestarted by the user through the selection of customization item in apredetermined menu or a customization icon. In other embodiments, otherinitiation events are contemplated, such as pressing a predeterminedbutton or combination of buttons.

To begin, the select mode operation 402 selects a mode that is to bemodified, wherein the mode may be named, such as “meeting,” “normal,”etc. In one embodiment, the selection of a particular mode may beperformed using a drop-down menu by a user. Other embodiments providefor the selection of modes in other manners, such as by typing the modename, for example.

Once a particular mode is selected, volume selection operation 404selects the volume levels for a plurality of different notificationevents. For example, the volume levels for screen taps and controlbutton presses may be set by volume selection operation 404 as well asthe volume levels for system events, e.g., “critical stop” and others.Typically, the user selects these volume levels based on anunderstanding of the environments that the particular profile will beused. Following volume selection operation 404, set sound operation 406sets the sound files for the various system events. Setting the soundfiles typically involves selecting a system event and assigning a soundfile, such as a “.wav” file to the system event. Again, the usertypically sets these sound files based on an understanding of theenvironment for the profile and an understanding of which sound filesare recognizable for different notification events.

Next, set reminder operation 408 sets the type or types of notificationsto be performed by the small computer device in reminding the user of anevent. Set reminder operation sets notification types, such asvibration, sound, flashing light, or displaying a message to the user toremind the user of an event. In an embodiment, any one or all may beselected to inform the user of an event, depending on the profile.Moreover, for a particular profile, the user may decide to select nonotification types for reminders.

Following set operation 408, store operation 410 stores a profile forthe selected mode. Storing the profile involves maintaining a look uptable in memory wherein the table lists all events and their associatednotification types according to set operations 404, 406 and 408.

Once the notification types for the reminders have been set and theprofile has been stored, determination act 412 determines whetheranother notification mode is to be customized. If not, then flowbranches NO and the flow 400 ends at end operation 414. Otherwise, flowbranches YES to select operation 402 and flow 400 is repeated.Determination act 412 may occur explicitly by prompting the use toselect another mode for customization or by selecting a “complete” or“done” control button to indicate that no more modes are to becustomized. Alternatively, determination act 412 may occur implicitlywherein the user either selects another mode for customization or exitsthe customization process by selecting another, unrelated feature.

As may be appreciated, the acts of customizing the volume levels, soundfiles and reminder information may be performed in different order.Moreover, in an embodiment, default values for these items are stored inmemory. When default values are stored for the separate profiles, a userhas the option of customizing all, some or none of the various elements,e.g., volume, sound files, etc.

FIGS. 5, 6 and 7 illustrate screen shots for an embodiment of theinvention during the flow 400 of customizing a notification mode. FIG. 5illustrates volume selection operation 404. The particular mode is shownin text box 502. Control 504 allows for the drop-down selection ofanother mode, if desired. Slide controls 506, 508 and 510 are used toselect volume levels for different types of notification events. Slidecontrol 506 is used to select the volume level for screen taps whilecontrol 508 is used to select the volume level for hardware buttonpresses. Additionally, slide control 510 is used to select the volumelevel for system events, such as a critical stop. As may be appreciated,in the illustrated embodiment, no volume control is provided for settingthe volume level for reminders in this particular display. Instead thevolume control for reminders is provided during the setting ofnotification types discussed below. Alternative embodiments provide forthe setting of the volume for reminders as well as from a displaysimilar to display 500.

FIG. 6 demonstrates the setting of the sound files for the varioussystem events. As in FIG. 5, the present notification mode isillustrated in text box 502. Setting the sound files for various systemevents relates to assigning a particular file, such as a “.wav”executable file to be executed when the predetermined system eventoccurs. Display 600 provides the graphical user interface display toassign these files.

FIG. 7 illustrates a graphical user interface display 700 for settingnotification types to reminder type notifications. That is, a reminderis a particular type of notification event that is triggered in order toremind the user of something, such as a meeting time or a due date for aproject, for example. These reminders are typically associated with acalendar type application program, as discussed in more detail below.Reminder-type notification events may be set, using display 700 totrigger different types of notifications. For example, the reminders maybe set to cause vibrations by checking box 702, display a message bychecking display box 704, flash a light by checking light box 706 or toplay a sound by checking sound box 708. If the sound box 708 is selectedcontrols 710 are enabled, otherwise controls 710 are disabled. Controls710 provide for the management of the types and volume of the sound thatis played once a reminder initiates a notification.

FIG. 8 is a flow chart of the operational characteristics of anembodiment of the present invention related to setting the device into anotification mode. The flow begins when receive operation 802 receivesan indication to select a sound mode. That is, in an embodiment, thesystem is always in a mode, and in order to switch the system from theexisting mode to a new one, the system must receive an indication tothis effect. For example, the user may select a mode selection icon onthe system which indicates to the system that the user desires to changenotification modes. Alternatively, the user could select a menu optionrelated to switching the particular mode of the system. In yet otherembodiments, the user performs other functions in order to indicate tothe system that the modes should be switched.

Once the system receives an indication to switch notification modes,display operation 804 displays a mode menu, such as mode menu 114 shownin FIG. 1. A mode menu displays the available mode options to the user.Moreover, the menu may provide a visual indication to the user relatingto the current or existing notification mode, such as a check mark nextto the current mode.

Following the display of the mode menu, receive operation 806 receivesan indication as to the selected notification mode. That is, the userenters or selects one of the menu options from the mode menu. Selectingone of the menu options causes the system to receive a signal related tothe selected menu option. Once receive operation 806 receives aselection, application operation 808 applies the selected mode to thesmall computer device. While the mode is applied to the device, allnotifications presented to the user are done so based on the selectedmode. Additionally, the small computer device remains in the selectedmode until the system receives another indication to select a differentsound mode, such as in operation 802.

FIG. 9 is a flow chart of the operational characteristics of analternative embodiment of the present invention related to automaticallysetting the device into a notification mode. In an embodiment of theinvention, flow 900 only executes when the user has selected “automaticprofile switching” as part of the user preferences. Otherwise, theautomatic notification flow is not performed and the user must manuallyenter the device into a particular notification profile. Alternatively,the device 100 may be configured to automatically enter differentnotification profiles and the user may select to turn off thisparticular notification preference.

The flow 900 begins when a calendar-related event occurs. Hence, in thisembodiment, the small computer device has a calendar-type applicationcapable of storing appointments and other calendar-related items.Moreover, the small computer device has an internal clock system therebyallowing the small computer device to remind the user of upcoming eventsscheduled in the calendar application.

Upon the occurrence of a calendar-related event, determination operation902 determines whether a predetermined notification mode has been setfor the event. In one embodiment, the user may set a particularnotification mode for an event when the event is created and/or edited.Alternatively, the user may associate notification modes with calendarevents independently of the creation or editing of the calendar event.If determination operation 902 determines that no predeterminednotification mode has been set for the particular calendar event, flowbranches NO to end operation 908. In such a case, the notification modeis not changed and any subsequent notifications are presented to theuser according to the existing notification mode.

Otherwise, if determination operation 902 determines that apredetermined notification mode has been associated with the calendarevent, flow branches YES to application operation 904. Applicationoperation 904 automatically applies the selected mode to the smallcomputer device and any subsequent notifications are presented to theuser according to the selected mode. The device remains in the selectedmode until the end of the calendar event. Upon the ending of thecalendar event, the device is automatically switched back to theprevious notification mode. That is, since calendar events typicallyhave both a start time and an end time, the end time is used to switchthe notification mode back to its original state.

In an embodiment of the invention, the software could support theautomatic profile switching for each appointment individually, whereinthe user manually associates an appointment with a particular profile.That profile is then used for all reminders occurring during that oneappointment. Alternatively, the user may set a predetermined profile forall appointments of a particular type, e.g., busy, out of office,tentative, free, etc. Therefore, the user does not have to manually seta profile for each appointment individually, but can set a profile basedon the type of appointment in a global manner. In such a case, thedevice automatically enters profile switching mode once an appointmentof a predetermined type begins.

Flow 900 may be described by way of an example. Assume a calendarapplication has stored a one-hour meeting that begins at 1:00 PM andends at 2:00 PM. Further assume that the meeting event has an associatedpredetermined notification mode, called “meeting.” At 1:00 PM, on theday of the meeting, the calendar application recognizes that a calendarevent has started. At this point, the calendar application determinesthat a predetermined notification mode has been associated with theevent, such as at determination operation 902. The calendar applicationcauses, through the operating system, the small device to be switchedinto meeting mode, such as at operation 904. At 2:00 PM, the calendarapplication recognizes that the meeting has ended and causes, throughthe operating system, the small computer device to be switched back intonormal mode, or whatever mode the device was in prior to the start ofthe meeting.

When notification events occur, the application or the operating systemmust decide if a particular type of event is presented to the user andthe type of notification that should be used. That is, in oneembodiment, the application determines which mode the device is in anddetermines, based on the mode, what type of notification to present tothe user. In such a case the application provides the operating systemwith a control signal indicating to execute the notification accordingto the type of notification stored in the particular profile. In analternative embodiment, the application merely conducts a control to theoperating system to present a notification to the user. In that case,the operating system determines what mode the device is in and presentsthe notification to the user according to the stored profile.

The above-described invention allows the user to configure sophisticatedprofiles relating to different modes or expected environments. Theseprofiles maintain a listing of the various type of notification events,e.g., key presses, reminders, wireless communication signals, phonecalls, text messages, etc. Additionally, the profiles maintain a list ofnotification types, e.g., audible, vibration, visual, etc. wherein eachnotification event is associated with one or more notification types.Thus, prior to providing the user a notification, the device determinesthe mode that the device is in and presents the notification accordingto the associated profile. Moreover, the device may be automaticallyplaced in a predetermined mode based on a stored calendar event torelieve the user of the responsibility of remembering when to place thedevice in a new mode.

Although the invention has been described in language specific tostructural features and/or methodological steps, it is to be understoodthat the invention defined in the appended claims is not necessarilylimited to the specific features or steps described. Rather, thespecific features and steps are disclosed as preferred forms ofimplementing the claimed invention. Since many embodiments of theinvention can be made without departing from the spirit and scope of theinvention, the invention resides in the claims hereinafter appended.

1. A storage medium of a computer encoding instructions for executing acomputer process on a small computer device for notifying a user ofnotification events with predetermined notification types depending onthe user's environment, the process comprising: storing two or morenotification profiles for each of one or more users, such that eachnotification profile is assigned a predetermined environmentalnotification mode from a selection of one or more environmentalnotification modes and such that each notification profile has one ormore notification events from a selection of one or more notificationevents and such that eachof the notification events is assigned at leastone notification type from a selection of one or more notificationtypes; displaying an environmental notification mode menu comprising twoor more of the following modes for the user's environment: inside,outside, office, normal, meeting, and off; displaying a notificationevent menu comprising one or more of the following notification events:reminder event from a calendar-type application program, reception ofemail, and reception of priority email; displaying a notification typemenu comprising one or more of the following notification types: visualdisplay, vibration signal, and audible signal and such that the audiblesignal comprises one of the following volume levels: loud, intermediateand disabled; receiving a selection signal to select one notificationmode from the displayed notification mode menu; applying the selectednotification mode to the small computer device such that the deviceremains in the selected notification mode until another notificationmode is selected; and as a result of applying the selected notificationmode, notifying the user of notification events with assignednotification types in accordance with the notification profile assignedto the selected notification mode.
 2. The storage medium as defined inclaim 1 such that the computer device further comprises thecalendar-type application program storing reminder events and such thatthe selection signal for selecting one notification mode is generated bythe calendar-type application program.
 3. The storage medium as definedin claim 1 such that the computer process for notifying a user of asmall computer device of notification events further comprises:selecting a particular notification mode to modify a notificationprofile assigned to that mode; modifying the notification profile; andstoring the modified profile.
 4. The storage medium as defined in claim1 such that the computer process for notifying a user of a smallcomputer device of notification events further comprises: assigning aplurality of volume levels of the small computer device with differentnotification types assigned to notification events within a notificationprofile; and selecting volume levels for different notification typesassigned to notification events within a notification profile.
 5. Thestorage medium as defined in claim 1 such that the visual display is amessage comprising text.
 6. The storage medium as defined in claim 1such that the visual display is a flashing light.
 7. The storage mediumas defined in claim 1 such that the two or more stored notificationprofiles include one or more assignments of a particular sound file to aparticular event.
 8. The storage medium as defined in claim 1 such thateach profile comprises at least two event notification types based on auser's environment.
 9. The storage medium as defined in claim 1 suchthat a user is capable of being notified of an event in a plurality ofways, depending on a selected profile.
 10. The storage medium as definedin claim 1 such that the notification event is a reception of email overa wireless network.
 11. The storage medium as defined in claim 1 suchthat the notification event is a reception of a voicemail.
 12. A methodfor notifying a user of a small computer device of notification eventswith predetermined notification types depending on the user'senvironment and corresponding to stored notification profiles, themethod comprising: storing two or more notification profiles for each ofone or more users, such that each notification profile is assigned apredetermined environmental notification mode from a selection of one ormore environmental notification modes and such that each notificationprofile has one or more notification events from a selection of one ormore notification events and such that each of the notification eventsis assigned at least one notification type from a selection of one ormore notification types; displaying an environmental notification modemenu comprising two or more of the following modes for the user'senvironment: inside, outside, office, normal, meeting, and offdisplaying a notification event menu comprising one or more of thefollowing notification events: reminder event from a calendar-typeapplication program, reception of email, and reception of priorityemail; displaying a notification type menu comprising one or more of thefollowing notification types: visual display, vibration signal, andaudible signal and such that the audible signal comprises one of thefollowing volume levels: loud, intermediate, and disable; receiving aselection signal to select a first notification mode from the displayednotification mode menu; applying the first notification mode to thesmall computer device such that the device remains in the firstnotification mode until another notification mode is selected; as aresult of applying the first notification mode, notifying the user ofnotification events with assigned notification types in accordance withthe notification profile assigned to the first notification mode;receiving a selection signal to select a second notification mode fromthe displayed notification mode menu; applying the second notificationmode to the small computer device such that the device remains in thesecond notification mode until another notification mode is selected;and as a result of applying the second notification mode, notifying theuser of notification events with assigned notification types inaccordance with the notification profile assigned to the secondnotification mode.
 13. A small computer system for notifying a user ofnotification events with at least one predetermined notification typebased on the user's environment, the system comprising: a memory unitstoring two or more notification profiles for each of one or more users,such that each notification profile is assigned a predeterminedenvironmental notification mode from a selection of one or moreenvironmental notification modes and such that within each notificationprofile are notification events from a selection of one or morenotification events and such that each of the notification events isassigned at least one notification type; a display unit for showing anenvironmental notification mode menu comprising two or more of thefollowing modes for the user's environment: inside, outside, office,normal, meeting, and off, for showing a notification event menucomprising one or more of the following notification events: reminderevent from a calendar-type application program, reception of email, andreception of priority email, and for showing a notification type menucomprising one or more of the following notification types: visualdisplay, vibration signal, and audible signal and the audible signalcomprises one of the following volume levels: loud, intermediate anddisabled; an input unit for selecting at least one from a groupconsisting of a notification profile from the two or more notificationprofiles, a notification mode from the notification mode menu, anotification event from the notification event menu, and a notificationtype from the notification type menu; a first output unit for notifyingthe user of a first notification event using a first notification type;a second output unit for notifying the user of the first notificationevent using a second notification type such that the second notificationtype is different from the first notification type; a processing unit inresponse to the notification profile selected from the two or moreprofiles in the memory unit and in response to the notification event,automatically determining whether to notify the user using the firstnotification type or the second notification type; and the processingunit utilizing the first or second output unit to notify the user. 14.The computer system as defined in claim 13 such that a type ofnotification event is a reception of email over a wireless network. 15.The computer system as defined in claim 13 such that the notificationevent is a calendar event stored by a calendar-type application program.16. The computer system as defined in claim 13 such that the firstnotification type is an audible signal and the second notification typeis a visual display.
 17. The computer system as defined in claim 13 suchthat the first notification type is a vibration signal and the secondnotification type is an audible signal.
 18. The computer system asdefined in claim 13 such that the stored notification profiles includeone or more assignments of a particular sound file to a particularevent.